clear
version 15.0
set matsize 150


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// 																		 /// 
/// 																		 /// 			   	
/// Author			: Kenneth Bunker										 ///	
/// Email			: kabunker@gmail.com									 ///														
///	Project			: Voter equalization (with Daniel Brieba)				 ///
///																			 ///
///																			 ///
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


** set working directory:														<------------- SET WORKING DIRECTORY HERE!
cd "/Users/KennethBunker/Dropbox/Brieba - Voter equalization and turnout bias (LAPS)/data/dataverse"


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Figure 1: Participation in National and Local Elections
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


// load data
use "Figure1.dta", clear

// plot
twoway (bar Presidential Mayoral year, xlabel(1989 1992 1993 1996 1999 2000 2004 2005 2008 2009 2012 2013 2016 2017, angle(vertical) labsize(small)) ylabel(0(10)90, labsize(small))) , xline (2011) text(80 2011.2  "Electoral" "Reform", place(se) box just(left) margin(1+2 0.5 0.5)) xtitle("") legend(order (2 1)) plotregion(margin(b = 0))


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Figure 2: Turnout Trends in the 2016 Mayoral Elections
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


// load data
use "Master.dta", clear

// plot
twoway (scatter PartPEV idse if year==2016 & sacar==0 & Ciudades==0, msymbol()) (scatter PartPEV idse if year==2016 & sacar==0 & Ciudades==1, msymbol(x)) (lfit PartPEV idse if year==2016 & sacar==0 & Ciudades==0) (lfit PartPEV idse if year==2016 & sacar==0 & Ciudades==1),  legend (on order(1 2) label(1 Rural) label (2 Urban)) ytitle(Turnout in 2016)


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Table 2: Determinants of Turnout in Local Elections (OLS)
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


// load data
use "Master.dta", clear

// 2004
reg PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes titular compet2 NSE_GranStgo NSE_Grandes if sacar==0 & year==2004, rob beta
center PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes titular compet2 NSE_GranStgo NSE_Grandes if sacar==0 & year==2004, standardize
reg  c_PartPEV c_lnPEV c_pad c_lnden c_edadprom c_idse c_GranStgo c_Grandes c_NSE_GranStgo c_NSE_Grandes c_titular c_compet2 if sacar==0 & year==2004, noconstant
estimates store Local_2004
drop c_PartPEV- c_NSE_Grandes

// 2008
reg PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes titular compet2 NSE_GranStgo NSE_Grandes if sacar==0 & year==2008, rob beta
center PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes titular compet2 NSE_GranStgo NSE_Grandes if sacar==0 & year==2008, standardize
reg  c_PartPEV c_lnPEV c_pad c_lnden c_edadprom c_idse c_GranStgo c_Grandes c_NSE_GranStgo c_NSE_Grandes c_titular c_compet2 if sacar==0 & year==2008, noconstant
estimates store Local_2008
drop c_PartPEV- c_NSE_Grandes

// 2012
reg PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes titular compet2 NSE_GranStgo NSE_Grandes if sacar==0 & year==2012, rob beta
center PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes titular compet2 NSE_GranStgo NSE_Grandes if sacar==0 & year==2012, standardize
reg  c_PartPEV c_lnPEV c_pad c_lnden c_edadprom c_idse c_GranStgo c_Grandes c_NSE_GranStgo c_NSE_Grandes c_titular c_compet2 if sacar==0 & year==2012, noconstant
estimates store Local_2012
drop c_PartPEV- c_NSE_Grandes

// 2016
reg PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes titular compet2 NSE_GranStgo NSE_Grandes if sacar==0 & year==2016, rob beta
center PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes titular compet2 NSE_GranStgo NSE_Grandes if sacar==0 & year==2016, standardize
reg  c_PartPEV c_lnPEV c_pad c_lnden c_edadprom c_idse c_GranStgo c_Grandes c_NSE_GranStgo c_NSE_Grandes c_titular c_compet2 if sacar==0 & year==2016, noconstant
estimates store Local_2016
drop c_PartPEV- c_NSE_Grandes


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Table 3: Determinants of Turnout in National Elections (OLS)
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


// load data
use "Master.dta", clear

// 2005
reg PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2005, rob beta
center PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2005, standardize
reg  c_PartPEV c_lnPEV c_pad c_lnden c_edadprom c_idse c_GranStgo c_Grandes c_NSE_GranStgo c_NSE_Grandes if sacar==0 & year==2005, noconstant
estimates store National_2005
drop c_PartPEV- c_NSE_Grandes

// 2009
reg PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2009, rob beta
center PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2009, standardize
reg  c_PartPEV c_lnPEV c_pad c_lnden c_edadprom c_idse c_GranStgo c_Grandes c_NSE_GranStgo c_NSE_Grandes if sacar==0 & year==2009, noconstant
estimates store National_2009
drop c_PartPEV- c_NSE_Grandes

// 2013
reg PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2013, rob beta
center PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2013, standardize
reg  c_PartPEV c_lnPEV c_pad c_lnden c_edadprom c_idse c_GranStgo c_Grandes c_NSE_GranStgo c_NSE_Grandes if sacar==0 & year==2013, noconstant
estimates store National_2013
drop c_PartPEV- c_NSE_Grandes

// 2017
reg PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2017, rob beta
center PartPEV lnPEV pad lnden edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2017, standardize
reg  c_PartPEV c_lnPEV c_pad c_lnden c_edadprom c_idse c_GranStgo c_Grandes c_NSE_GranStgo c_NSE_Grandes if sacar==0 & year==2017, noconstant
estimates store National_2017
drop c_PartPEV- c_NSE_Grandes


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Figure 3: Determinants of Turnout in Chile
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


// load data
use "Master.dta", clear

// local plot
coefplot Local_2004 Local_2008 Local_2012 Local_2016, drop(_cons) xline(0) coeflabels(c_lnPEV="VAP" c_pad="Register" c_lnden="Density" c_edadprom="Age" c_idse="Class" c_GranStgo="Capital" c_Grandes="Large" c_titular="Incumbent" c_compet2="Competition" c_idse_comp2="Competition x Class" c_NSE_GranStgo="Capital x Class" c_NSE_Grandes="Large x Class")  grid(between glpattern(dash) glcolor(black))

// national plor
coefplot National_2005 National_2009 National_2013 National_2017, drop(_cons) xline(0) coeflabels(c_lnPEV="VAP" c_pad="Register" c_lnden="Density" c_edadprom="Age" c_idse="Class" c_GranStgo="Capital" c_Grandes="Large" c_NSE_GranStgo="Capital x Class" c_NSE_Grandes="Large x Class") grid(between glpattern(dash) glcolor(black))

// combined plot
coefplot (Local_2004, label(2004/2005)) (Local_2008, label(2008/2009)) (Local_2012, label(2012/2013)) (Local_2016, label(2016/2017)), bylabel("Local Elections") xline(0) || (National_2005, label(2004/2005)) (National_2009, label(2008/2009)) (National_2013, label(2012/2013)) (National_2017, label(2016/2017)), bylabel("National Elections") ||, xlabel(-2 -1 0 1 2) xscale(r(-2 2)) coeflabels(c_lnPEV="VAP" c_pad="Register" c_lnden="Density" c_edadprom="Age" c_idse="Class" c_GranStgo="Capital" c_Grandes="Large" c_titular="Incumbent" c_compet2="Competition" c_idse_comp2="Competition x Class" c_NSE_GranStgo="Capital x Class" c_NSE_Grandes="Large x Class")  grid(between glpattern(dash) glcolor(black)) legend(rows(1))


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Table 4: Determinants of Turnout in Chile (Fixed Effects)
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


// load data
use "Master.dta", clear

// Local elections (a)
xtreg PartPEV lnPEV pad lnden edadprom idse GranStgo NSE_GranStgo Grandes NSE_Grandes titular compet2 vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_GranStgo vol_NSEGranStgo vol_Grandes vol_NSEGrandes vol_incumbent vol_comp2 y2008 y2012 y2016 if sacar==0,  fe vce(cluster codigocomuna)

// Local elections (b)
xtreg PartPEV lnPEV pad lnden edadprom idse GranStgo NSE_GranStgo Grandes NSE_Grandes titular compet2 idse_comp2 vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_GranStgo vol_NSEGranStgo vol_Grandes vol_NSEGrandes vol_incumbent vol_comp2 vol_idse_comp2 y2008 y2012 y2016 if sacar==0,  fe vce(cluster codigocomuna)

// Local elections (c)
xtreg PartPEV lnPEV pad lnden edadprom idse GranStgo NSE_GranStgo Grandes NSE_Grandes vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_GranStgo vol_NSEGranStgo vol_Grandes vol_NSEGrandes y2009 y2013 y2017 if sacar==0 & national==1,  fe vce(cluster codigocomuna)


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Table 5: Changes in Turnout by Urban and Rural Subsamples
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


// load data
use "Master.dta", clear

// Local-rural (d)
xtreg PartPEV lnPEV pad lnden edadprom idse titular compet2 vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_incumbent vol_comp2 y2008 y2012 y2016 if sacar==0 & Ciudades==0,  fe vce(cluster codigocomuna)

// Local-urban (e)
xtreg PartPEV lnPEV pad lnden edadprom idse titular compet2 vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_incumbent vol_comp2 y2008 y2012 y2016 if sacar==0 & Ciudades==1,  fe vce(cluster codigocomuna)

// Local-rural (f)
xtreg PartPEV lnPEV pad lnden edadprom idse titular compet2 idse_comp2 vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_incumbent vol_comp2 vol_idse_comp2 y2008 y2012 y2016 if sacar==0 & Ciudades==0,  fe vce(cluster codigocomuna)

// Local-urban (g)
xtreg PartPEV lnPEV pad lnden edadprom idse titular compet2 idse_comp2 vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_incumbent vol_comp2 vol_idse_comp2 y2008 y2012 y2016 if sacar==0 & Ciudades==1,  fe vce(cluster codigocomuna)

// National-rural (h)
xtreg PartPEV lnPEV pad lnden edadprom idse vol_lnPEV vol_pad vol_lnden vol_age vol_idse y2009 y2013 y2017 if sacar==0 & national==1 & Ciudades==0,  fe vce(cluster codigocomuna)

// National-urban (i)
xtreg PartPEV lnPEV pad lnden edadprom idse vol_lnPEV vol_pad vol_lnden vol_age vol_idse y2009 y2013 y2017 if sacar==0 & national==1 & Ciudades==1,  fe vce(cluster codigocomuna)


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Others: Robustness checks 1
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


// load data
use "Master.dta", clear

// tests
glm PartPEV lnPEV pad den edadprom idse titular compet2 GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2004, family(binomial) vce(cluster comuna)
glm PartPEV lnPEV pad den edadprom idse titular compet2 GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2008, family(binomial) vce(cluster comuna)
glm PartPEV lnPEV pad den edadprom idse titular compet2 GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2012, family(binomial) vce(cluster comuna)
glm PartPEV lnPEV pad den edadprom idse titular compet2 GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2016, family(binomial) vce(cluster comuna)
glm PartPEV lnPEV pad den edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2005, family(binomial) vce(cluster comuna)
glm PartPEV lnPEV pad den edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2009, family(binomial) vce(cluster comuna)
glm PartPEV lnPEV pad den edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2013, family(binomial) vce(cluster comuna)
glm PartPEV lnPEV pad den edadprom idse GranStgo Grandes NSE_GranStgo NSE_Grandes if sacar==0 & year==2017, family(binomial) vce(cluster comuna)
replace PartPEV=PartPEV/100
glm PartPEV lnPEV pad lnden edadprom idse GranStgo NSE_GranStgo Grandes NSE_Grandes titular compet2 vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_GranStgo vol_NSEGranStgo vol_Grandes vol_NSEGrandes vol_incumbent vol_comp2 voluntary if sacar==0, family(binomial) vce(cluster comuna)
glm PartPEV lnPEV pad lnden edadprom idse GranStgo NSE_GranStgo Grandes NSE_Grandes titular compet2 idse_comp2 vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_GranStgo vol_NSEGranStgo vol_Grandes vol_NSEGrandes vol_incumbent vol_comp2 vol_idse_comp2 voluntary if sacar==0, family(binomial) vce(cluster comuna)
glm PartPEV lnPEV pad lnden edadprom idse GranStgo NSE_GranStgo Grandes NSE_Grandes vol_lnPEV vol_pad vol_lnden vol_age vol_idse vol_GranStgo vol_NSEGranStgo vol_Grandes vol_NSEGrandes voluntary if sacar==0 & national==1, family(binomial) vce(cluster comuna)


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Others: Robustness checks 2
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


// load data
use "Master.dta", clear

// tests
gen pov_comp2=poverty*compet2
gen vol_pov_comp2= poverty*voluntary*compet2
gen vol_pov12=voluntary*pov12
gen vol_pov12_GranStgo=voluntary*pov12*GranStgo
gen vol_pov12_Grandes=voluntary*pov12*Grandes
gen vol_pov12_comp2=voluntary*pov12*compet2
xtreg PartPEV lnPEV pad lnden edadprom poverty GranStgo NSE_GranStgo Grandes NSE_Grandes titular compet2 vol_lnPEV vol_pad vol_lnden vol_age vol_pov vol_GranStgo vol_povGranStgo vol_Grandes vol_povGrandes vol_incumbent vol_comp2 y2008 y2012 y2016 if sacar==0,  fe vce(cluster codigocomuna)
xtreg PartPEV lnPEV pad lnden edadprom poverty GranStgo NSE_GranStgo Grandes NSE_Grandes titular compet2 pov_comp2 vol_lnPEV vol_pad vol_lnden vol_age vol_pov vol_GranStgo vol_povGranStgo vol_Grandes vol_povGrandes vol_incumbent vol_comp2 vol_pov_comp2 y2008 y2012 y2016 if sacar==0,  fe vce(cluster codigocomuna)
xtreg PartPEV lnPEV pad lnden edadprom poverty GranStgo NSE_GranStgo Grandes NSE_Grandes vol_lnPEV vol_pad vol_lnden vol_age vol_pov vol_GranStgo vol_povGranStgo vol_Grandes vol_povGrandes y2009 y2013 y2017 if sacar==0 & national==1,  fe vce(cluster codigocomuna)


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// End!
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

